﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using DataManager.DAL;

namespace DataManager.BLL
{
    public class FilmManager
    {
        private MoviesDAO moviesDAO;
        private AlkalmazottakDAO almalmazottakDAO;
        private SzamlaDAO szamlaDAO;
        private VasarlokDAO vasarlokDAO;
        private VasarlasokDAO vasarlasokDAO;
        private EladasInfokDAO eladasInfokDAO;

        public FilmManager(DAOFactory daoFactory)
        {
            this.moviesDAO = daoFactory.getMoviesDAO();
            this.almalmazottakDAO = daoFactory.getAlkalmazottakDAO();
            this.szamlaDAO = daoFactory.getSzamlaDAO();
            this.vasarlokDAO = daoFactory.getVasarlokDAO();
            this.vasarlasokDAO = daoFactory.getVasarlasokDAO();
            this.eladasInfokDAO = daoFactory.getEladasInfokDAO();
        }

        public DataSet getMovieIDList()
        {
            return moviesDAO.getMovieIDList();
        }

        public DataSet getMovieData(int id)
        {
            return moviesDAO.getMovieData(id);
        }

        public DataSet getMovieDB(int id)
        {
            return moviesDAO.getMovieDB(id);
        }

        public DataSet getMovieListOnTitle(string title)
        {
            return moviesDAO.getMovieListOnTitle(title);
        }

        public DataSet getMovieListOnYear(int year)
        {
            return moviesDAO.getMovieListOnYear(year);
        }

        public DataSet getMovieListOnActor(string actor)
        {
            return moviesDAO.getMovieListOnActor(actor);
        }

        public DataSet getMovieListOnDirector(string director)
        {
            return moviesDAO.getMovieListOnDirector(director);
        }

        public void levonFilm(int FilmID, int db)
        {
            moviesDAO.subtractMovie(FilmID, db);
        }
        
        public DataSet bejelentkezes(string FelhasznaloNev, string Jelszo)
        {
            return almalmazottakDAO.bejelentkezes(FelhasznaloNev, Jelszo);
        }

        public DataSet getMaxVasarlokID()
        {
            return vasarlokDAO.getMaxVasarlokId();
        }

        public DataSet getAlkalmazottInfoByName(string nev)
        {
            return almalmazottakDAO.getAlkalmazottInfoByName(nev);
        }

        public void ujAlkalmazott(string nev, string cim, int fizetes, string felh, string jelszo)
        {
            almalmazottakDAO.ujAlkalmazott(nev, cim, fizetes, felh, jelszo);
        }

        public void modosit(int id,string nev, string cim, int fizetes, string felh, string jelszo)
        {
            almalmazottakDAO.modosit(id, nev, cim, fizetes, felh, jelszo);
        }

        public DataSet vasarloNevek()
        {
            return vasarlokDAO.nevek();
        }

        public DataSet vasarloIdja(String nev)
        {
            return vasarlokDAO.getIDFromName(nev);
        }

        public DataSet vasarlokAdatai()
        {
            return vasarlokDAO.vasarlokAdatai();
        }

        public void vasarloTorlese(int vasarloId)
        {
            vasarlokDAO.vasarloTorlese(vasarloId);
        }

        public void vasarlotFrissit(int vasarloID, string nev, string helyseg, string cim, string email)
        {
            vasarlokDAO.vasarlotFrissit(vasarloID, nev, helyseg, cim, email);
        }

        public void vasarlotBeszur(int vasarloID, string nev, string helyseg, string cim, string email)
        {
            vasarlokDAO.vasarlotbeszur(vasarloID, nev, helyseg, cim, email);
        }

        public DataSet maxSzamlaSzam()
        {
            return szamlaDAO.maxSzamlaSzam();
        }

        public void ujSzamlaFej(int SzamlaSzam, DateTime Datum, int Ertek, int VasarloID, int VasarlasID)
        {
            szamlaDAO.ujSzamlaFej(SzamlaSzam, Datum, Ertek, VasarloID, VasarlasID);
        }

        public DataSet maxSzamlaSor()
        {
            return szamlaDAO.maxSzamlaSor();
        }

        public void ujSzamlaSor(int SzamlaSor, int SzamlaID, int FilmID, int Ertek)
        {
            szamlaDAO.ujSzamlaSor(SzamlaSor, SzamlaID, FilmID, Ertek);
        }

        public DataSet lekerdezSzamla(int SzamlaSzam)
        {
            return szamlaDAO.LekerdezSzamla(SzamlaSzam);
        }

        public void beginTransaction()
        {
            szamlaDAO.beginTransaction();
        }

        public void commitTransaction()
        {
            szamlaDAO.commitTransaction();
        }

        public void rollbackTransaction()
        {
            szamlaDAO.rollbackTransaction();
        }

        public DataSet maxVasarlasokID()
        {
            return vasarlasokDAO.maxVasarlasokID();
        }

        public void ujVasarlas(int VasarlasID, int VasarloID, int EladoID, DateTime Datum)
        {
            vasarlasokDAO.ujVasarlas(VasarlasID, VasarloID, EladoID, Datum);
        }

        public int getOsszesEladasErtek()
        {
            return eladasInfokDAO.getOsszesEladasErtek();
        }

        public DataSet getLegjobbVasarloInfo()
        {
            return eladasInfokDAO.getLegjobbVasarloInfo();
        }
    }
}
